package main

import (
	"fmt"
	"reflect"
)

/*
   @Time : 2018/8/29 18:00 
   @Author : ff
*/
func main() {
	//test1()

	setVal()
}

func test1()  {
	var a = [5]string{"zzz"}
	t := reflect.TypeOf(a)
	fmt.Println("获取变量类型->",t.Kind())
}

/**
  通过反射改变值
 */
func setVal(){
	var x float64 = 3.4
	//传地址进去，不传地址的话，改变的是副本的值
	v := reflect.ValueOf(&x)
	fmt.Println("type:", v.Type())
	fmt.Println("kind is float64:", v.Kind() == reflect.Float64)

	//通过Elem()获取指针指向的变量，从而完成赋值操作
	v.Elem().SetFloat(6.8)
	fmt.Println("value:", v.Elem().Float())
}

/**
	获取结构体类型相关信息
 */
func getStructFieldType(){

}